package com.xebest.web.service;

import com.xebest.web.form.*;
import com.xebest.web.model.XeVenGoodsRejectEntity;
import com.xebest.web.view.XeVenGoodsRejectDetailView;
import com.xebest.web.view.XeVenRejectView;

import java.util.List;

/**
 * @desc: 退货单相关service
 * @author: chenjing
 * @createTime: 2017/6/22 0022 下午 4:04
 * @history:
 * @version:v1.0
 */
public interface XeVenGoodsRejectService {

    /**
     * @Author:chenjing
     * @Description:  插入退货单信息
     * @Date:下午 4:05 2017/6/22 0022
     * @params: * @param null
     * @return:
     */
    int insert(XeVenGoodsRejectEntity record);

    /**
     * @Author:chenjing
     * @Description: 根据退货单号查询退货单信息
     * @Date:上午 11:22 2017/6/27 0027
     * @params: * @param null
     * @return:
     */
    XeVenGoodsRejectEntity getGoodsRejectByRejectCode(String rejectCode,String userCode);

    /**
     * @Author:chenjing
     * @Description:  审核,删除退货单
     * @Date:上午 10:49 2017/6/27 0027
     * @params: * @param null
     * @return:
     */
    int updateGoodsReject(XeVenGoodsRejectEntity entity) throws Exception;

    /**
     * @Author:chenjing
     * @Description: 收货入库
     * @Date:下午 1:56 2017/6/27 0027
     * @params: * @param null
     * @return:
     */
    int receiveGoodsReject(XeVenRejectSubmitForm form) throws Exception;

    /**
     * @Author:chenjing
     * @Description:查询退货单列表信息
     * @Date:上午 10:44 2017/7/3 0003
     * @params: * @param null
     * @return:
     */
    List<XeVenRejectView> queryRejectList(XeVenRejectQueryForm form) throws  Exception;

    /**
     * @Author:chenjing
     * @Description:批量审核退货单
     * @Date:下午 4:04 2017/7/5 0005
     * @params: * @param null
     * @return:
     */
    int batchGoodsRejectList(XeVenAfterSaleCheckForm form,int rejectStatus,List checkStatusList) throws  Exception;

    /**
     * @Author:chenjing
     * @Description:退货单批量确认收货
     * @Date:下午 5:24 2017/7/5 0005
     * @params: * @param null
     * @return:
     */
    int receiveGoodsRejectList(XeVenAfterSaleCheckForm form) throws  Exception;

    /**
     * @Author:chenjing
     * @Description: 根据退货单号查询退货单详细信息
     * @Date:下午 3:37 2017/7/6 0006
     * @params: * @param null
     * @return:
     */
    List<XeVenGoodsRejectDetailView> queryRejectDetail(XeVenAfterSaleDetailForm form) throws  Exception;

    /**
     * @Author:chenjing
     * @Description:批量删除退货单信息
     * @Date:上午 11:11 2017/7/7 0007
     * @params: * @param null
     * @return:
     */
    int delGoodsRejectList(XeVenAfterSaleDelForm form);
}
